200
Can you add text with links in the event

PROCEDURE OnAnchorClick(oSchedule,AnchorID,Options)
	DevOut( Transform(AnchorID,"") )
	DevOut( Transform(Options,"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:AnchorClick := {|AnchorID,Options| OnAnchorClick(oSchedule,AnchorID,Options)} /*Occurs when an anchor element is clicked.*/

		oSchedule:Calendar():Selection := "06/20/2012"
		oEvents := oSchedule:Events()
			oEvents:Add("06/20/2012 09:00:00","06/20/2012 11:00:00"):ExtraLabel := "<aID1234;OPTIONS-1234>click me</a>"
			oEvents:Add("06/20/2012 11:00:00","06/20/2012 13:00:00"):ExtraLabel := "<a1235;OPTIONS-1235>click me</a>"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
199
How do you adjust the font type and size of the event (method 2)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:Calendar():Selection := "06/20/2012"
		oSchedule:DefaultEventShortLabel := "<font mistral;12><%=%256%>"
		oSchedule:DefaultEventLongLabel := oSchedule:DefaultEventShortLabel()
		oEvents := oSchedule:Events()
			oEvents:Add("06/20/2012 09:00:00","06/20/2012 11:00:00")
			oEvents:Add("06/20/2012 11:00:00","06/20/2012 13:00:00")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
198
How do you adjust the font type and size of the event (method 1)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvent,oEvent1
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:Calendar():Selection := "06/20/2012"
		oEvents := oSchedule:Events()
			oEvent := oEvents:Add("06/20/2012 09:00:00","06/20/2012 11:00:00")
				oEvent:ShortLabel := "<font tahoma;12><%=%256%>"
				oEvent:LongLabel := oEvent:ShortLabel()
			oEvent1 := oEvents:Add("06/20/2012 11:00:00","06/20/2012 13:00:00")
				oEvent1:ShortLabel := "<fgcolor FF><i><font Mistral;16>your caption</i></font> goes here"
				oEvent1:LongLabel := oEvent1:ShortLabel()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
197
How can I change the shape of the line to be shown when user drag and drop data over the control

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:OLEDropMode := 1/*exOLEDropManual*/
		oSchedule:VisualAppearance():Add(1,"C:\Program Files\Exontrol\ExSchedule\Sample\EBN\dash1.ebn")
		oSchedule:SetProperty("Background",97/*exScheduleOLEDropPosition*/,0x1000000)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
196
How can I highlight the date-time from cursor when the user drag and drop data over the control
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:OLEDropMode := 1/*exOLEDropManual*/
		oSchedule:SetProperty("Background",97/*exScheduleOLEDropPosition*/,AutomationTranslateColor( GraMakeRGBColor  ( { 1,0,0 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
195
How can I start drag and drop events

PROCEDURE OnOLEStartDrag(oSchedule,Data,AllowedEffects)
	/*Data.SetData("to be carried by drag and drop")*/
	AllowedEffects := 1
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:OLEStartDrag := {|Data,AllowedEffects| OnOLEStartDrag(oSchedule,Data,AllowedEffects)} /*Occurs when the OLEDrag method is called.*/

		oSchedule:BeginUpdate()
		oSchedule:AllowMoveEvent := 0/*exDisallow*/
		oSchedule:AllowCreateEvent := 0/*exDisallow*/
		oSchedule:OLEDropMode := 1/*exOLEDropManual*/
		oSchedule:Calendar():Selection := "06/27/2012"
		oEvents := oSchedule:Events()
			oEvents:Add("06/27/2012 11:00:00","06/27/2012 12:30:00"):SetProperty("BodyBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
			oEvents:Add("06/27/2012 11:30:00","06/27/2012 13:30:00")
			oEvents:Add("06/27/2012 08:30:00","06/27/2012 11:45:00")
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
194
Is it possible to show the today date with a different foreground color

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:Calendar():Selection := "month(value) = month(date(``)) and (int((yearday(value) -1- ((7-weekday(value - yearday(value) + 1)) mod 7) )/7) = int((yearday(date(``))-1)/7))"
		oSchedule:SetProperty("Background",14/*exCalendarMarkToday*/,oSchedule:BackColor())
		oSchedule:SetProperty("Background",30/*exCalendarMarkTodayForeColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
193
How can I hide the rectangle around the today date

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:Calendar():Selection := "month(value) = month(date(``)) and (int((yearday(value) -1- ((7-weekday(value - yearday(value) + 1)) mod 7) )/7) = int((yearday(date(``))-1)/7))"
		oSchedule:SetProperty("Background",14/*exCalendarMarkToday*/,oSchedule:BackColor())

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
192
Is it possible to change the appearance of event with no status using the EBN (office theme)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:VisualAppearance():Add(1,"gBFLBCJwBAEHhEJAEGg4BeoDg6AADACAxRDAMgBQKAAzQFAYaBqGqGAAGKD4JhUAIIRZGMIjFDcEwxC6NIpAWCYRDGEwCQiNQyRDCYYw+GYCJBmKKYcgONYgQLHcgxDIsJw/FyERjjeB4egkaZHRZOUZTZQsBxRAZ2Q4EQAKRpOFY9DTPcr0HR8ZQ+BKNAYkSjQAp2VZUVJFUqDKItVzbBIaRgteA7RrOXpjRjYEBxDKcZyxLqVLToiqcRz7PqbZrjeioZoyBI+QjgYAUFDeGSTDQ3bwAA4rEqaaZnVbkOQQJTcNy7EKvYRzGA7CgPHI5QjnVR6BjUJztWyIbp3G4rchqH4RaqAF5ZXg9ez/FIaJbnUaMWhXFqOABwPC0XoIGuAJklAeR6H2dAngcEZWnQehzCsd4SmGPJzF2Io1l2fhrgeUpxHOLIAggSRAlIYw6B0ThGFyEJ4CEAwQgSV51BkDYQhCIQJHgGp0gAGBFgCB55nAAC3HCbYEGEOBIHO" +;
		"BZhggZgagYIRIHYEoFCGMoSCKCJiEiFgjgaYZjjYGIJiKSI2CeBZiAgXgugyYxIgYNINmIaJaDiDpKEiag8g2Y5on4M4GkqGQWEaEZkgkJhKhEZBJC4ToTmSSBqFCFJkikNhUhXQpaFiFJlikbhPhcZZpC4GwqmYSYWGaGZmgmJhkhiZopjYboamGKY+HKGhmkmTh2CqZxZl4coeGeKY6HyHxmigbIuiCaBKBaBohmiCgOgKIhokoNoKgaKJqEaCIimkwwuiUKVyBiJk7m6HIiGGMqbCiSwqhaI4pmqComiOKBqiqNouioKpKj6JQsiqapOiuBoqnqZouiwaxahqOooiuSp+j+BpLEsFpGjGbILCaSoxGwSwuk6M5skgapQjSbIrDaVI15AWpYjSbYrG6T43G2a1Ui2bhLhaZo5m6C4mmSOJuiuNpujqYYrj6co6G6S5OnYLZvFuXpyj4b4rjqfI/G7aA7kCcBMBcBpBnCDAPAKQhwkwN1wjCbBHAiQp" +;
		"xCwVI7kVlJHBiRhwlwbzrHGbB/AeBpLlyFI/kmcoMiMJQvHKLIbCeSpyjyEwwkycxMk8LZMDMLIzC+S4LnyVw+kwYYsn8P5KHOPJoj+TnQl8NJSjMPJnEzmR9CMQpUnOSBvESVZ1g0ZwplWNYtHcXZXDWbYHESWA2C2Fxklkdgdh8aJXmGLYvGaBoME2RxylydxNlcdpcGGPZfHqXp3C2M4fIv3sD3ACMETAnALgJF+PAbgPh7jEHiFsXgNgxjyA4I8EoyR5CcFeCEY48huDPBqMsYYXBvg9GUPMDg/wiBjHoD0D4PRpD0G4NdcY8hoDZEqNcewHRHhlGyPYTofwujaHuB0Z4bQGh3C6O9ng9xvAJEqA0TIfgXiNHGPkDznxxD4E8F8To5x8iQGuKEdI+QvBvFSOuKotxYjpGGGYN4vR3j8A+A8Yo8R9jeHeMkeY/QPgsBoGcPonw3jdHuP4D4jxsgNH8F8V47R7D+E+L8eo+A/g/G+PwGYnx1j/D+FA" +;
		"AwAQfhoASAEL4lADiBAePEeowBcANAGGAOgCQhhDCMAoIIWAWgFHAMQDIghEBuAaEEbAPQChgHIB8QgUAxAQGEDgJgNAwgsBOIQJAbUpCoBoIoCAtAJiFGgMEBQwwqBjAWCEYAcwigoCgIAQBAQ==")
		oSchedule:OnResizeControl := 768/*exChangePanels+exHideSplitter*/
		oSchedule:Calendar():Selection := "06/27/2012"
		oSchedule:SetProperty("BodyEventBackColor",0x1000000)
		oSchedule:ShowStatusEvent := .F.
		oSchedule:SetProperty("DefaultEventPadding",-1/*exPaddingAll*/,3)
		oSchedule:SetProperty("Background",75/*exScheduleCreateEventBackColor*/,0x1000000)
		oSchedule:SetProperty("Background",79/*exScheduleUpdateEventsBackColor*/,0x1000000)
		oEvents := oSchedule:Events()
			oEvents:Add("06/27/2012 11:00:00","06/27/2012 12:30:00"):SetProperty("BodyBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
			oEvents:Add("06/27/2012 11:30:00","06/27/2012 13:30:00"):SetProperty("BodyBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,255,0 } )  , .F. ))
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
191
Is it possible to change the appearance of event's status using the EBN (office theme)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oAppearance
	LOCAL oEvent,oEvent1
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:OnResizeControl := 768/*exChangePanels+exHideSplitter*/
		oAppearance := oSchedule:VisualAppearance()
			oAppearance:Add(1,"gBFLBCJwBAEHhEJAEGg4BKYCg6AADACAxRDAMgBQKAAzQFAYaBqGqGAAGKD4JhUAIIRZGMIjFDcEwxC6NIpAWCYRDEMQ0AJCIzDJCIZBkHCPRjASQZUhmHIDTbIEBxfIMIxLE9IMwxfA8ax1GifI6hGSYDa0HAkABTVQRLL4aSDK6NaYmSL5DhkBokUpGKTpOhgATHMqqIzGURZNquEQ1DBbEI3BaUaw/CKRLAoahqVpqK4tS7MNa3XKkcxzD6eIypGBKAgmQoJDLRGIxTiYACxPQACzsEAKapKUZPRZVNYQJQlNRDLiEcrgOr4DxqO4aWbZViaDZVawlNy5bhtfaqGrfKYJYLrWCTbh0Tz9KzIJJwHbcKxjKrDczjEoSVwiAmSgcGmIxaggHBHFmFpoHEJwbg8FpammO5bEUaxbm6ZwDH+YI7EIQQQhKAYkkYdA6hyDI4ngGRIA8AwQgSV51BkDYQhCIQJHeHAkCAGBFgGR55m8CQBkONkYCEEgxGe" +;
		"BZJHQDgTgWFhFgyf4HmICByBqBRhmiAgmD+YggAIHIJmKSIhGMQJijiNgmgoYwYkoH4NCIWJaC6BhiiiZg2g4CR4moN4LmOWQGEKEAkCibgwg+vwiEeEQjFifhQhMIpZDoOoViUKJyFGExlDkGhXhcZIZGIXIWiUSIyGKFRmAkPhkheJYZC4bIYmaaYGGmF5mjmSh1hqJwZmIRYdieGZSH2GxnjmahbhoJx5nqAYhigOYaHOIAohiHhniKKBaDIZYjiiOZCgeJImnoEh/iWKJYk6FYmikehyhOJ4pBqCoZiQKY6gKHYIGmeoiiGKoqDqMoliwKh6FKM4riqOQOjeLYqhqYoxi6K5anKL4visWoSkGMYsDsCo5hKLIbCKS4jmyKp+kyM5qlsRpFiyLB7GKTY2i0Spuk6NItAsfpXjALY7hKXYIk6Wh2CmBphgqOgTjuYhIHachAlAECAg=")
			oAppearance:Add(2,"CP:1 0 0 1 0")
			oAppearance:Add(4,"gBFLBCJwBAEHhEJAEGg4BGoDg6AADACAxRDAMgBQKAAzQFAYaBqGqGAAGKD4JhUAIIRZGMIjFDcEwxC6NIpASLoJDCH4mSTHYxyHIMWwtDiBZgkCA4fiGEYnThKM5SdKsXABG6NErSdDAAoKRIVTjAcsVTicAo+R7TcYgLBNAQHKQAHZDQRKZpuFoRRKJNgDLYUEhqGCyYDseyZNj2GZYRDPVqzWAFFzrFSqLilaYpSh+bpfSRSVI3PakQz+LCNCzwEAKYoaRZDRZgdzUbItMYNBKsMQgO6QAwqNKYQjWVaaFgEYzJMa2LTiHSqQhrGqMQjnV5ZPgVzZKZZGVQ1LBOOZfEJ2XacSqeCyWEqnRryFpWRpfGXiX7EOY7HaePwDAQQhKAaEwZlCahyDKDBjm4a5JAiG5jgyDYhCKDZukYSAYgsLAzh0RBlBqBAkA4Ox+n+H5AAGDJWDWH5jFmdBQl8Z5yAGAZfngDZ6H9HIiACAhUCgMgPgSYAYA4EoDiE" +;
		"WBGBiAxhAIXAADITRzGIIA2AyAxYleCJhGiFgnggYg4iIEYImKKIqC6B4iliMg2DYIRolYIoLA2ExmDmDwNhiNg9g+Y44goPYMmGeJeEKD4hBMMJbDaTIYnYTg2mUOBaFOFZknkVhNhYZZJFIT4ViWWRElmFohmkYhehQJA4ESTg3A2WYuG2GwmmgWhuhyZwJjIcodGaeZmGANpnEMdhkAAJ5ZE4cYaieCZ2HeHhoGoEoIh4IRjESXg3iialFiQaJaE6Fokg2ahWhiJBpEgRociWaZYHqH4mmiehqiOKBAAqDJUDgTgaiyYYFiqapGiyK4rAqTosiQa14jKKxrGqPo6i8a46laPIwmuGB6juMBrnsEo9jCLB6jKTIwCyawmk2L4sGsQpDjObIrFAAA2E4U4WlyN4tlsfgWjebhLgaXY4waApqjoLorhSZY7C6a4KBGPBuhuQppjyIZrlKa48m8e5WBENwOHOIyNDAHAOBaQJwgwFwBgWDZziSaZCHAQ4" +;
		"jAeQoxBwGp/kUMQME8FZFDGLBDBaB4xmwcwXkacQcDMDpDE6HIjCiSYyhyHwuDocpMisL5MHKfIuBGTIylyZgWDgToziyYg7A6TJ8myTwO7KPZRDQLQTEYOp0g0AxKgQdBNDcQ5PHSPRHEeVQ1A0XxMlaNRdGsT4Hg4Q44m2WB2D2CxkgWNhNicZpYjaDYvGWW52l2PxqDsdz+meBBOGOIEcAdAPAnEcPIPAbx4C2H+MEd4XAHDxGEPEDgBh6jBDiDwEI4QFhvEOI8EYyR3i8EMPsZQcguCsBGMwOQMApj5GYEAPg8RtAADoDAFY9xpiAAQAggIA=")
		oSchedule:Calendar():Selection := "06/27/2012"
		oSchedule:SetProperty("StatusEventColor",0x2000000)
		oSchedule:SetProperty("BodyEventBackColor",0x4000000)
		oSchedule:SetProperty("Background",75/*exScheduleCreateEventBackColor*/,0x1000000)
		oSchedule:SetProperty("Background",79/*exScheduleUpdateEventsBackColor*/,0x1000000)
		oSchedule:StatusEventSize := 6
		oSchedule:SetProperty("DefaultEventPadding",-1/*exPaddingAll*/,2)
		oEvents := oSchedule:Events()
			oEvents:Add("06/27/2012 11:00:00","06/27/2012 12:30:00"):SetProperty("BodyBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
			oEvent := oEvents:Add("06/27/2012 11:30:00","06/27/2012 13:30:00")
				oEvent:SetProperty("BodyBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,255,0 } )  , .F. ))
				oEvent:SetProperty("StatusColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,128 } )  , .F. ))
				oEvent:ExtraLabel := "Point"
			oEvent1 := oEvents:Add("06/27/2012 08:30:00","06/27/2012 11:45:00")
				oEvent1:SetProperty("StatusColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,255 } )  , .F. ))
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
190
Does your control support subscript or superscript, in HTML captions

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:SetProperty("BodyEventBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oSchedule:Calendar():Selection := "06/20/2012"
		oEvents := oSchedule:Events()
			oEvents:Add("06/20/2012 09:00:00","06/20/2012 11:00:00"):ExtraLabel := "<sha ;;0>Event <b><font ;6><off 4>1"
			oEvents:Add("06/20/2012 11:00:00","06/20/2012 13:00:00"):ExtraLabel := "<sha ;;0>Event <b><font ;6><off 4>2"
			oEvents:Add("06/20/2012 13:00:00","06/20/2012 15:00:00"):ExtraLabel := "<sha ;;0>Event <b><font ;6><off -6>2<off 4>3<off 4>1"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
189
How can I hide the scheduler part of the control, so I can use the calendar panel only

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:OnResizeControl := 257/*exHideSplitter+exResizePanelRight*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
188
I see how I can specify a non-working day pattern for weekends, but how can I specify non-working days for holidays

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oNonworkingTimes
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:SetProperty("SelectDate","05/28/2012",.T.)
			oCalendar:Select(3/*exSelectWeek*/)
			oCalendar:SetProperty("SelectDate","06/05/2012",.F.)
			oCalendar:Select(19/*exSelectToggle+exSelectWeek*/)
			oCalendar:SetProperty("SelectDate","06/12/2012",.F.)
			oCalendar:Select(19/*exSelectToggle+exSelectWeek*/)
		oNonworkingTimes := oSchedule:NonworkingTimes()
			oNonworkingTimes:Add("month(value) = 5","00:00","24:00",-1)
			oNonworkingTimes:Add("value in (#6/5/2012#,#6/7/2012#)","00:00","24:00",-1)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
187
How do I enable the scrollbar-extension, as thumb to be shown outside of the control's client area

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:ScrollBars := 15/*exDisableBoth*/
		oSchedule:SetProperty("ScrollPartVisible",0/*exVScroll*/,65536/*exExtentThumbPart*/,.T.)
		oSchedule:SetProperty("ScrollPartVisible",1/*exHScroll*/,65536/*exExtentThumbPart*/,.T.)
		oSchedule:SetProperty("ScrollPartVisible",2/*0x2+*/,65536/*exExtentThumbPart*/,.T.)
		oSchedule:ScrollWidth := 4
		oSchedule:SetProperty("Background",276/*exVSBack*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oSchedule:SetProperty("Background",260/*exVSThumb*/,AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
		oSchedule:ScrollHeight := 4
		oSchedule:SetProperty("Background",404/*exHSBack*/,oSchedule:Background(276/*exVSBack*/))
		oSchedule:SetProperty("Background",388/*exHSThumb*/,oSchedule:Background(260/*exVSThumb*/))
		oSchedule:SetProperty("Background",511/*exScrollSizeGrip*/,oSchedule:Background(276/*exVSBack*/))
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
186
How can I show contiguously the days, in a single row

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:SetProperty("SelectDate","05/20/2012",.T.)
			oCalendar:Select(3/*exSelectWeek*/)
			oCalendar:SetProperty("SelectDate","05/27/2012",.F.)
			oCalendar:Select(19/*exSelectToggle+exSelectWeek*/)
		oSchedule:ShowViewCompact := 1/*exViewSingleRow*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
185
How can I show contiguously the days

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:SetProperty("SelectDate","05/20/2012",.T.)
			oCalendar:Select(3/*exSelectWeek*/)
			oCalendar:SetProperty("SelectDate","05/27/2012",.F.)
			oCalendar:Select(19/*exSelectToggle+exSelectWeek*/)
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
184
How can I display the time in european format with no usage of AM/PM

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oTimeScale
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oTimeScale := oSchedule:TimeScales:Item(0)
			oTimeScale:MajorTimeLabel := "<%hh%>:<%nn%>"
			oTimeScale:Width := 32
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "06/11/2001"
			oCalendar:ShortTimeFormat := "<%h%>:<%nn%>"
		oEvents := oSchedule:Events()
			oEvents:Add("06/11/2001 10:00:00","06/11/2001 13:15:00")
			oEvents:Add("06/11/2001 10:30:00","06/11/2001 14:30:00")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
183
Is it possible to zoom the schedule component using a key and scrolling the wheel (not pressing it and moving the mouse)
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:AllowResizeSchedule := 19/*exCTRLKey+exMiddleClick*/
		oSchedule:AllowMoveSchedule := 3/*exMiddleClick*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
182
How can I change the format of the date being displayed in the calendar panel

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:Calendar():HeaderDayLabel := "<sha><%mmmm%></sha> <sha><fgcolor=FF0000><%yyyy%></fgcolor></sha>"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
181
How can I display the Year in Thai, Buddhist, Korean format

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:FirstWeekDay := oCalendar:LocFirstWeekDay()
			oCalendar:MonthNames := oCalendar:LocMonthNames()
			oCalendar:WeekDays := oCalendar:LocWeekDays()
			oCalendar:AMPM := oCalendar:LocAMPM()
			oCalendar:HeaderDayLabel := "<%mmmm%> <fgcolor=FF0000><%loc_yyyy%>"
		oSchedule:HeaderDayLongLabel := "<|><%dddd%>, <%mmmm%> <%d%>, <fgcolor=FF0000><%loc_yyyy%><|><%dddd%>,<%mmmm%> <%d%>,<fgcolor=FF0000><%loc_yyyy%><|><%dddd%>, <%mmmm%> <%d%>,`<fgcolor=FF0000><%loc_yy%><|><%dddd%>, <%mmmm%> <%d%><|><%dddd%>, <%m3%> <%d%><|><%dddd%>, <%d%><|><%dddd%><|><%d3%><|><%d2%><|><%d1%>"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
180
May I specify a fixed width for my dates, so user can not resize it
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:OnResizeControl := 3585/*exCalendarAutoHide+exCalendarFit+exChangePanels+exResizePanelRight*/
		oSchedule:AllowResizeSchedule := 0/*exDisallow*/
		oSchedule:AllowMoveSchedule := 3/*exMiddleClick*/
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:DayViewWidth := 96
		oSchedule:DayViewHeight := 256
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
179
How can I change the format of date being displayed on the header
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:HeaderDayLongLabel := "<|><%dddd%>, <%d%> <%mmmm%>, <%yyyy%><|><%dddd%>, <%d%> <%mmmm%>, <%yyyy%><|><%dddd%>, <%d%> <%mmmm%>,`<%yy%><|><%dddd%>, <%d%> <%mmmm%><|><%dddd%>, <%d%> <%m3%><|><%dddd%>, <%d%><|><%dddd%><|><%d3%><|><%d2%><|><%d1%>"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
178
Is there any notifications for exchanging the panels at runtime
PROCEDURE OnLayoutEndChanging(oSchedule,Operation)
	DevOut( "End exLayoutExchangePanels(16)" )
	DevOut( Transform(Operation,"") )
RETURN

PROCEDURE OnLayoutStartChanging(oSchedule,Operation)
	DevOut( "Start exLayoutExchangePanels(16)" )
	DevOut( Transform(Operation,"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:LayoutEndChanging := {|Operation| OnLayoutEndChanging(oSchedule,Operation)} /*Notifies your application once the control's layout has been changed.*/
		oSchedule:LayoutStartChanging := {|Operation| OnLayoutStartChanging(oSchedule,Operation)} /*Occurs when the control's layout is about to be changed.*/

		oSchedule:AllowExchangePanels := 1/*exLeftClick*/
		oSchedule:AllowCreateEvent := 0/*exDisallow*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
177
How can I handle the All-Day events only

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:OnResizeControl := 3072/*exCalendarAutoHide+exCalendarFit*/
		oSchedule:ShowAllDayHeader := .T.
		oCalendar := oSchedule:Calendar()
			oCalendar:SetProperty("SelectDate","05/08/2012",.T.)
			oCalendar:Select(3/*exSelectWeek*/)
			oCalendar:SetProperty("SelectDate","05/15/2012",.F.)
			oCalendar:Select(19/*exSelectToggle+exSelectWeek*/)
		oSchedule:TimeScales:Item(0):Visible := .F.
		oSchedule:Events():Add("05/08/2012","05/17/2012"):AllDayEvent := .T.
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
176
Is it possible to show the All-Day events with EBN including the next/prev signs (2)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:OnResizeControl := 3072/*exCalendarAutoHide+exCalendarFit*/
		oSchedule:ShowAllDayHeader := .T.
		oCalendar := oSchedule:Calendar()
			oCalendar:SetProperty("SelectDate","05/08/2012",.T.)
			oCalendar:Select(3/*exSelectWeek*/)
			oCalendar:SetProperty("SelectDate","05/15/2012",.F.)
			oCalendar:Select(19/*exSelectToggle+exSelectWeek*/)
		oSchedule:VisualAppearance():Add(1,"gBFLBCJwBAEHhEJAEGg4BbkMQAAYAQGKIYBkAKBQAGaAoDDcOILQiMQzjTBMKgBBCLIxiGK4DhiF4aRSBMIwYAAYhyG4BIRGcYJEDMOQzR4MICSBKkMhlDiPY5mUAJEiSJg3TDQlzpAoSGoeUhGTZnQaQASXJqKZ6kegoEh4MopTTHQLRUB8EyTDKnaapSJpEDINQlWTZciDKKFUQTNi3KxraKqbjqO47VJKEpSZBMXRhBIYZCueZZXgPBY5YhIE64BSeASoACDZzoaAwTrOAwUZZFVg2DSOGSBRzQMKrCZKagnFYDVzleYxLjdR47Qy1Ih2GA7QqubYkUTmOjgBaoAYxQaaLx0OS5Rj4NAwZLFXI1eAGd6BDLhLz4XAOHxHjmAZvGOWoeG8PhBiMGIMGOQxZCQOBpGUG4NncEIdB8MxLhSbpRnMIIIEkQJSGMOgdE4RhfAwJZtAwEIEleeQZA2EIQiECR2ludB8BgRYMAeKYDByB4DG5F4hBgTgWgU" +;
		"YYIFIGoFmGOBlAmBJMmMQJwggYg4goJIJmIaImCWCpigiLgTgeYQYjYMoKiMOIyDSCIinQDggg2YxonYNYNGOEACDuD4jkifhFg4IQYkCW4RiQSQ2ECEhjiiRhHhOJQ4jYQYQmSSRmFOFZlCkUhehMJZJC4VYYmWaYGFqF5ljkQhChcZh5jYKoZiYSY6D2HAmgmVhWhqJYJkYeoLieCYyHuHInEmSoAh8Zgplof4SA2OQqgKIZPAmBgciOYYaEIHYkmQFAEIC")
		oSchedule:VisualAppearance():Add(2,"gBFLBCJwBAEHhEJAEGg4BVMIQAAYAQGKIYBkAKBQAGaAoDDYMwzQwAAxjOK0EwsACEIrjKCRShyCYZRhGcTSBCIZBqEqSZLiEZRQiiCYsS5GQBSFDcOwHGyQYDkCQpEhyKo+CTIAySXJsdw3IyNAIhEB4fgmM4DP7UIAVC78aRABCESgNEwzULUchlDDICJQSQRGzHDSKYDFCCaKgOTI6kgicpJUt6PBtaovKoWOZBcJ3Xjed6vBgeASpQbEL6wDCbfrjB6KY5eeDXXSkAkB")
		oSchedule:VisualAppearance():Add(3,"gBFLBCJwBAEHhEJAEGg4BVUIQAAYAQGKIYBkAKBQAGaAoDDYMwzQwAAxjOK0EwsACEIrjKCRShyCYZRhGcTSBCIZBqEqSZLiEZRQiiCYsS5GQBSFDcOwHGyQYDkCQpEhyKo+CTIAySXJsZxpHKaAIhEB4fgmRgAP7UNQVFLkEgRBIoDRMM5DVLIZQxSAiUIkERtRQ1CqBRQhGioDoyOgABhFZSUPKlIztO45DwbO56RrlWzONA8FzXdgDYYLQjAcJwXA7awrAZ8P7iGBZBbtdQCgIA==")
		oSchedule:SetProperty("BodyEventBackColor",0x1000000)
		oSchedule:SetProperty("Background",86/*exScheduleEventContinueNextWeek*/,0x2000000)
		oSchedule:SetProperty("Background",85/*exScheduleEventContinuePrevWeek*/,0x3000000)
		oSchedule:HeaderAllDayEventHeight := -14
		oSchedule:Events():Add("05/08/2012","05/17/2012"):AllDayEvent := .T.
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
175
How can I select programatically two weeks

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:SetProperty("SelectDate","05/08/2012",.T.)
			oCalendar:Select(3/*exSelectWeek*/)
			oCalendar:SetProperty("SelectDate","05/15/2012",.F.)
			oCalendar:Select(19/*exSelectToggle+exSelectWeek*/)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
174
Is it possible to show the All-Day events with EBN including the next/prev signs (1)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:OnResizeControl := 2048/*exCalendarAutoHide*/
		oSchedule:ShowAllDayHeader := .T.
		oCalendar := oSchedule:Calendar()
			oCalendar:FirstWeekDay := 1/*exMonday*/
			oCalendar:SetProperty("SelectDate","05/08/2012",.T.)
			oCalendar:Select(3/*exSelectWeek*/)
			oCalendar:SetProperty("SelectDate","05/15/2012",.F.)
			oCalendar:Select(19/*exSelectToggle+exSelectWeek*/)
		oSchedule:VisualAppearance():Add(1,"gBFLBCJwBAEHhEJAEGg4BbkMQAAYAQGKIYBkAKBQAGaAoDDcOILQiMQzjTBMKgBBCLIxiGK4DhiF4aRSBMIwYAAYhyG4BIRGcYJEDMOQzR4MICSBKkMhlDiPY5mUAJEiSJg3TDQlzpAoSGoeUhGTZnQaQASXJqKZ6kegoEh4MopTTHQLRUB8EyTDKnaapSJpEDINQlWTZciDKKFUQTNi3KxraKqbjqO47VJKEpSZBMXRhBIYZCueZZXgPBY5YhIE64BSeASoACDZzoaAwTrOAwUZZFVg2DSOGSBRzQMKrCZKagnFYDVzleYxLjdR47Qy1Ih2GA7QqubYkUTmOjgBaoAYxQaaLx0OS5Rj4NAwZLFXI1eAGd6BDLhLz4XAOHxHjmAZvGOWoeG8PhBiMGIMGOQxZCQOBpGUG4NncEIdB8MxLhSbpRnMIIIEkQJSGMOgdE4RhfAwJZtAwEIEleeQZA2EIQiECR2ludB8BgRYMAeKYDByB4DG5F4hBgTgWgU" +;
		"YYIFIGoFmGOBlAmBJMmMQJwggYg4goJIJmIaImCWCpigiLgTgeYQYjYMoKiMOIyDSCIinQDggg2YxonYNYNGOEACDuD4jkifhFg4IQYkCW4RiQSQ2ECEhjiiRhHhOJQ4jYQYQmSSRmFOFZlCkUhehMJZJC4VYYmWaYGFqF5ljkQhChcZh5jYKoZiYSY6D2HAmgmVhWhqJYJkYeoLieCYyHuHInEmSoAh8Zgplof4SA2OQqgKIZPAmBgciOYYaEIHYkmQFAEIC")
		oSchedule:VisualAppearance():Add(2,"gBFLBCJwBAEHhEJAEGg4BKMMQAAYAQGKIYBkAKBQAGaAoDDUNgwQwAAxDGKkEwsACEIrjKCRShyCYZRhGcTSBCIZBqEqSZLiEZRQiiCYsS5GQBSFDcOwHGyQYDkCQpEhyKo+CTIA4SXJsdxpI4EIRCSL6MgNf5PABTb7zTSgYANF6WRZgWgpTjcMJHTpYFIwHRdQwHLqoagqKZJAqMABQGiYZyHKcwMYgBZXJBEbbMNBtBIUIRtaxZBBiFzgUZYEBnEbDN4YbapMhyLI2OZBcCOJQ4SCoW4GJ49J7KXgYZiHOLcfjcLovLq5fiOQ5CV5ZXROM6sQyzIKWaCzLL5PjKHInWrPNa3DJtDyXJzUNY9GScG6HBLhWB0czzXIuO4djqXg4jUOo9j8N4Zk6YoeA+bZKhcV49kyaAllODhPC8d5bi+WJ6H0fhvHcExIHgQB4nuHpOj4Y4zioeQfDePZRGcHI3lGIh9h4JwhkodQckecY9G+WpHDmUAdAeNwCBE" +;
		"fRcGaIZ/G2D52gWfR0iGRhFg8Y5iBYTQBICA=")
		oSchedule:VisualAppearance():Add(3,"gBFLBCJwBAEHhEJAEGg4BgsHQAAYAQGKIYBkAKBQAGaAoDDUNgwQwAAxDGKkEwsACEIrjKCRShyCYZRhGcTSBCIZBqEqSZLiEZRQiiCYsS5GQBSFDcOwHGyQYDkCQpEhyKo+CTIA4SXJsZxpI6EQQhEJIfo2Az/VAAFQPfLNKhgAyXZZFWBaCoaEgwUhVMhUVAdGR1BKvKjqKoZcomCRQGiYZyHKcwMYgBZRRBEbbMNBtBIULasWjQYhdYI7WDTdR4XhmGDkPBtcbbPDcUpBBSLOAjSSOExzILhSrFVyXVzTXL5XDGMg7Wa5foFIDmPRtVbWNydLyvICOJK2eZOExrHrhWrPMZaRpnUyXJ6pcBvfA4Zi7QZlWjPOR2aoNCZbjuXpyjsPIahmYJ/keVR0HwPYsnIXQ4mSZ50jwXIfC+HxnmmcZ2HuCAOn+P43lSUZ1neXxeF4L4bmgeoeCcCZEHcXxIAGLBlBuBpphsdgfGaNB0B6WwXjoARrE+dxVkY" +;
		"ageAgHgUD+XJWm2U4GliNhJhIQBAICA==")
		oSchedule:SetProperty("BodyEventBackColor",0x1000000)
		oSchedule:SetProperty("Background",86/*exScheduleEventContinueNextWeek*/,0x2000000)
		oSchedule:SetProperty("Background",85/*exScheduleEventContinuePrevWeek*/,0x3000000)
		oSchedule:HeaderAllDayEventHeight := -20
		oSchedule:Events():Add("05/08/2012","05/17/2012"):AllDayEvent := .T.
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
173
Can I make it zoom in using CTRL-MouseWheel instead of using the middle button
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:AllowResizeSchedule := 19/*exCTRLKey+exMiddleClick*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
172
It is by default not possible, to simply scroll the component with the mouse wheel. How do I make it so
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:AllowMoveSchedule := 3/*exMiddleClick*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
171
Can I get and set the width of the time bar
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:TimeScales:Item(0):Width := 48

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
170
How do I select the current year

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:OnResizeControl := 2048/*exCalendarAutoHide*/
		oSchedule:Calendar():Select(1/*exSelectYear*/)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
169
How do I select the current week day

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:Calendar():Select(4/*exSelectWeekDay*/)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
168
How do I select the current week

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:Calendar():Select(3/*exSelectWeek*/)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
167
How can I restore the layout of the panels, when user changes the width and the alignment of the panels
PROCEDURE OnLayoutEndChanging(oSchedule,Operation)
	DevOut( "End Operation " )
	DevOut( Transform(Operation,"") )
	DevOut( "Layout " )
	DevOut( Transform(oSchedule:OnResizeControl(),"") )
	DevOut( "PaneWidth(False)" )
	DevOut( Transform(oSchedule:PaneWidth(.F.),"") )
RETURN

PROCEDURE OnLayoutStartChanging(oSchedule,Operation)
	DevOut( "Start Operation " )
	DevOut( Transform(Operation,"") )
	DevOut( "Layout " )
	DevOut( Transform(oSchedule:OnResizeControl(),"") )
	DevOut( "PaneWidth(False)" )
	DevOut( Transform(oSchedule:PaneWidth(.F.),"") )
RETURN

PROCEDURE OnMouseMove(oSchedule,Button,Shift,X,Y)
	DevOut( "Layout " )
	DevOut( Transform(oSchedule:OnResizeControl(),"") )
	DevOut( "PaneWidth(False)" )
	DevOut( Transform(oSchedule:PaneWidth(.F.),"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:LayoutEndChanging := {|Operation| OnLayoutEndChanging(oSchedule,Operation)} /*Notifies your application once the control's layout has been changed.*/
		oSchedule:LayoutStartChanging := {|Operation| OnLayoutStartChanging(oSchedule,Operation)} /*Occurs when the control's layout is about to be changed.*/
		oSchedule:MouseMove := {|Button,Shift,X,Y| OnMouseMove(oSchedule,Button,Shift,X,Y)} /*Occurs when the user moves the mouse.*/


	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
166
Is it possibly to set the column width of the group/person using the api

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oGroup,oGroup1
	LOCAL oGroups
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "01/10/2001"
		oSchedule:DisplayGroupingButton := .T.
		oSchedule:ShowGroupingEvents := .T.
		oSchedule:OnResizeControl := 3073/*exCalendarAutoHide+exCalendarFit+exResizePanelRight*/
		oGroups := oSchedule:Groups()
			oGroup := oGroups:Add(1,"Group 1")
				oGroup:Title := "First"
				oGroup:Visible := .T.
			oGroup1 := oGroups:Add(2,"Group 2")
				oGroup1:Title := "Second"
				oGroup1:Visible := .T.
		oEvents := oSchedule:Events()
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00"):GroupID := 1
			oEvents:Add("01/10/2001 10:00:00","01/10/2001 13:00:00"):GroupID := 2
		oSchedule:Groups:Item(1):Width := 24
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
165
When viewing the schedule by week or month and the month ends during the week (July 31, Tuesday -> August 1, Wednesday), the days continue down as a new week 'row'. When there is a change in month, is it possible to still show the full week without that break (compact)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:OnResizeControl := 2048/*exCalendarAutoHide*/
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "05/23/2012"
			oCalendar:Selection := "month(value) in (5,6)"
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
164
I want to change the default event tooltip. How can I do that

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:DefaultEventTooltip := "<b>BEGIN:</b> <%=%1%><br><b>END:</b>: <%=%2%><br><b>LENGTH:</b> <%=((1:=int(0:= (date(%2)-date(%1)))) != 0 ? (=:1 + ' day(s)') : '') + (=:1 ? ' ' : '' ) + ((1:=int(0:=((=:0 - =:1 + 1/24/60/60/2)*24))) != 0 ? =:1 + ' hour(s)' : '' ) + (=:1 ? ' ' : '' ) + ((1:=round((=:0 - =:1)*60)) != 0 ? =:1 + ' min(s)' : '')%>"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
163
How can I select the entire week for a specified date

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:NonworkingDays := 0
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:FirstWeekDay := 0/*exSunday*/
			oCalendar:Selection := "03/05/2012"
			oCalendar:Selection := "(int((yearday(value) -1- ((7-weekday(value - yearday(value) + 1)) mod 7) )/7) = int((yearday(#3/5/2012#)-1)/7))"
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
162
I have noticed that I can drag bars from All-Day header to time-zone and reverse. Is it possible to prevent that

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:OnResizeControl := 2048/*exCalendarAutoHide*/
		oSchedule:ShowAllDayHeader := .T.
		oSchedule:AllowUpdateAllDayFlag := .F.
		oSchedule:Calendar():Selection := "05/23/2012"
		oSchedule:Calendar():Selection := "value in (#5/23/2012#,#5/24/2012#,#5/25/2012#)"
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 12:00:00"):ExtraLabel := "<sha>dentist"
			oEvents:Add("05/24/2012","05/25/2012"):AllDayEvent := .T.
			oEvents:Add("05/23/2012","05/24/2012"):AllDayEvent := .T.
		oSchedule:SelectEventStyle := -1/*exNoLines*/
		oSchedule:ShowSelectEvent := .F.
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
161
When an all-day event stretches over multiple days (ex. Monday thru Friday), is it possible to have that display as a continuous bar across those days instead of separate bars on each day

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:OnResizeControl := 2048/*exCalendarAutoHide*/
		oSchedule:ShowAllDayHeader := .T.
		oSchedule:Calendar():Selection := "05/23/2012"
		oSchedule:Calendar():Selection := "value in (#5/23/2012#,#5/24/2012#,#5/25/2012#)"
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 12:00:00"):ExtraLabel := "<sha>dentist"
			oEvents:Add("05/24/2012","05/25/2012"):AllDayEvent := .T.
			oEvents:Add("05/23/2012","05/24/2012"):AllDayEvent := .T.
		oSchedule:SelectEventStyle := -1/*exNoLines*/
		oSchedule:ShowSelectEvent := .F.
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
160
If I double click to a scheduled event and enter text, how can I read this newly entered text (i.e. what is its corresponding field)

PROCEDURE OnLayoutEndChanging(oSchedule,Operation)
	DevOut( Transform(oSchedule:EventFromPoint(-1,-1),"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:LayoutEndChanging := {|Operation| OnLayoutEndChanging(oSchedule,Operation)} /*Notifies your application once the control's layout has been changed.*/

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/24/2012"
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 12:00:00"):ExtraLabel := "editable"
		oSchedule:SelectEventStyle := -1/*exNoLines*/
		oSchedule:ShowSelectEvent := .F.
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
159
Is it possible to show the date's header with a shadow

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:HeaderDayLongLabel := "<sha><%dddd%>, <%mmmm%> <%d%>, <%yyyy%>"
		oSchedule:Calendar():OnSelectDate := 1/*exEnsureVisibleDate*/
		oSchedule:AllowResizeSchedule := 0/*exDisallow*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
158
We need to highlight a day for example no booking/disabling for that day, is the timezone good choice (method 3)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "06/27/2012"
			oCalendar:Selection := "value in (#6/26/2012#,#6/27/2012#,#6/28/2012#)"
		oSchedule:AllowMultiDaysEvent := .F.
		oSchedule:NonworkingPatterns():Add(1,1/*exPatternSolid*/):Pattern():SetProperty("Color",AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oSchedule:NonworkingTimes():Add("value in (#6/27/2012#)","00:00","24:00",1)
		oSchedule:ShowNonworkingTime := 1/*exShowNonworkingTimeBack*/
		oSchedule:Calendar():DisableZoneFormat := "value in (#6/27/2012#)"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
157
We need to highlight a day for example no booking for that day, is the timezone good choice (method 2)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "06/27/2012"
			oCalendar:Selection := "value in (#6/26/2012#,#6/27/2012#,#6/28/2012#)"
		oSchedule:NonworkingPatterns():Add(1,1/*exPatternSolid*/):Pattern():SetProperty("Color",AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oSchedule:NonworkingTimes():Add("value in (#6/27/2012#)","00:00","24:00",1)
		oSchedule:ShowNonworkingTime := 1/*exShowNonworkingTimeBack*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
156
We need to highlight a day for example no booking for that day, is the timezone good choice (method 1)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oMarkZone
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "06/27/2012"
			oCalendar:Selection := "value in (#6/26/2012#,#6/27/2012#,#6/28/2012#)"
		oMarkZone := oSchedule:MarkZones():Add("zone","06/27/2012","06/28/2012")
			oMarkZone:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
			oMarkZone:Pattern():Type := 0/*exPatternEmpty*/
		oSchedule:ShowMarkZone := 1/*exShowMarkZonesBack*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
155
Is is possible to change the background color for a specific day

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oMarkZone
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "06/27/2012"
			oCalendar:Selection := "value in (#6/26/2012#,#6/27/2012#,#6/28/2012#)"
		oMarkZone := oSchedule:MarkZones():Add("zone","06/27/2012","06/28/2012")
			oMarkZone:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
			oMarkZone:Pattern():Type := 0/*exPatternEmpty*/
		oSchedule:ShowMarkZone := 1/*exShowMarkZonesBack*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
154
I want to know how can I call a user define form when editing a time slot
PROCEDURE OnLayoutEndChanging(oSchedule,Operation)
	DevOut( "End exScheduleResize(5)" )
	DevOut( Transform(Operation,"") )
RETURN

PROCEDURE OnLayoutStartChanging(oSchedule,Operation)
	DevOut( "Start exScheduleResize(5)" )
	DevOut( Transform(Operation,"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:LayoutEndChanging := {|Operation| OnLayoutEndChanging(oSchedule,Operation)} /*Notifies your application once the control's layout has been changed.*/
		oSchedule:LayoutStartChanging := {|Operation| OnLayoutStartChanging(oSchedule,Operation)} /*Occurs when the control's layout is about to be changed.*/

		oCalendar := oSchedule:Calendar()
			oCalendar:SingleSel := .T.
			oCalendar:OnSelectDate := 1/*exEnsureVisibleDate*/
		oSchedule:ClipToSel := .T.
		oSchedule:AllowMoveSchedule := 0/*exDisallow*/
		oSchedule:AllowMoveGroup := 0/*exDisallow*/
		oSchedule:AllowResizeSchedule := 1/*exLeftClick*/
		oSchedule:AllowCreateEvent := 0/*exDisallow*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
153
Can we lock the scroll bars so that it only scrolls within the selected date

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "06/01/2001"
			oCalendar:Selection := "value in (#6/11/2001#,#6/12/2001#)"
			oCalendar:SingleSel := .T.
			oCalendar:OnSelectDate := 1/*exEnsureVisibleDate*/
		oSchedule:ClipToSel := .T.
		oSchedule:DayViewWidth := -1
		oSchedule:DayViewHeight := 512
		oEvents := oSchedule:Events()
			oEvents:Add("06/11/2001 10:00:00","06/11/2001 13:00:00")
			oEvents:Add("06/12/2001 10:00:00","06/12/2001 13:00:00")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
152
Is it possible to specify the dates to be printed to a single page

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oPrint
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "06/01/2001"
			oCalendar:Selection := "value in (#6/11/2001#,#6/12/2001#)"
		oSchedule:DayViewWidth := 116
		oSchedule:DayViewHeight := 116
		oEvents := oSchedule:Events()
			oEvents:Add("06/11/2001 10:00:00","06/11/2001 13:00:00")
			oEvents:Add("06/12/2001 10:00:00","06/12/2001 13:00:00")
		oPrint := CreateObject("Exontrol.Print")
			oPrint:Options := "Range=month(value)=6;FitToPage=On"
			oPrint:PrintExt := oSchedule
			oPrint:Preview()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
151
Is it possible to specify the dates to be printed

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oPrint
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "06/01/2001"
			oCalendar:Selection := "value in (#6/11/2001#,#6/12/2001#)"
		oSchedule:DayViewWidth := 116
		oSchedule:DayViewHeight := 116
		oEvents := oSchedule:Events()
			oEvents:Add("06/11/2001 10:00:00","06/11/2001 13:00:00")
			oEvents:Add("06/12/2001 10:00:00","06/12/2001 13:00:00")
		oPrint := CreateObject("Exontrol.Print")
			oPrint:Options := "Range=month(value)=6"
			oPrint:PrintExt := oSchedule
			oPrint:Preview()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
150
Does your control support Fit-To-Page, while printing

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oPrint
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "06/01/2001"
			oCalendar:Selection := "value in (#6/11/2001#,#6/12/2001#)"
		oSchedule:DayViewWidth := 512
		oSchedule:DayViewHeight := 512
		oEvents := oSchedule:Events()
			oEvents:Add("06/11/2001 10:00:00","06/11/2001 13:00:00")
			oEvents:Add("06/12/2001 10:00:00","06/12/2001 13:00:00")
		oPrint := CreateObject("Exontrol.Print")
			oPrint:Options := "FitToPage=On"
			oPrint:PrintExt := oSchedule
			oPrint:Preview()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
149
Does your control support Print and Print-Preview

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oPrint
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "06/01/2001"
			oCalendar:Selection := "value in (#6/11/2001#,#6/12/2001#)"
		oSchedule:DayViewWidth := 512
		oSchedule:DayViewHeight := 512
		oEvents := oSchedule:Events()
			oEvents:Add("06/11/2001 10:00:00","06/11/2001 13:00:00")
			oEvents:Add("06/12/2001 10:00:00","06/12/2001 13:00:00")
		oPrint := CreateObject("Exontrol.Print")
			oPrint:PrintExt := oSchedule
			oPrint:Preview()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
148
How can I specify the height (time slot) of the day to be larger
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:ClipToSel := .T.
		oSchedule:DayViewHeight := 1024
		oSchedule:DayViewWidth := -1
		oSchedule:TimeScales:Item(0):MinorTimeRuler := "00:05"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
147
How can I prevent resizing the schedule view, when a new date is selected
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:OnSelectDate := 1/*exEnsureVisibleDate*/
			oCalendar:Selection := "01/10/2001"
			oCalendar:SingleSel := .T.
		oSchedule:DayViewWidth := 48

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
146
How do I get notified once the user moves an event
PROCEDURE OnUpdateEvent(oSchedule,Ev)
	DevOut( "UpdateEvent" )
	DevOut( Transform(Ev,"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvent,oEvent1
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:UpdateEvent := {|Ev| OnUpdateEvent(oSchedule,Ev)} /*Notifies your application once the event changes the starting or ending margins.*/

		oSchedule:SelectEventStyle := 48/*exLinesSolid*/
		oSchedule:DefaultEventLongLabel := "<%=%256%><br><%=%5%>"
		oSchedule:DefaultEventShortLabel := oSchedule:DefaultEventLongLabel()
		oSchedule:Calendar():Selection := "01/10/2001"
		oSchedule:OnResizeControl := 3073/*exCalendarAutoHide+exCalendarFit+exResizePanelRight*/
		oEvents := oSchedule:Events()
			oEvent := oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
				oEvent:Editable := 1/*exEditCaption*/
				oEvent:Caption := "your caption"
			oEvent1 := oEvents:Add("01/10/2001 10:00:00","01/10/2001 13:00:00")
				oEvent1:Editable := 1/*exEditCaption*/
				oEvent1:Caption := "other caption"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
145
Can You give me an example for the event handler when a user double clicks an appointment
PROCEDURE OnDblClick(oSchedule,Shift,X,Y)
	LOCAL e
	e := oSchedule:EventFromPoint(-1,-1)
	DevOut( "Start:" )
	DevOut( Transform(e,"") )
	DevOut( "End:" )
	DevOut( Transform(e,"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:DblClick := {|Shift,X,Y| OnDblClick(oSchedule,Shift,X,Y)} /*Occurs when the user dblclk the left mouse button over an object.*/

		oSchedule:AllowEditEvent := 0/*exDisallow*/
		oSchedule:AllowToggleSchedule := 0/*exDisallow*/
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "06/01/2001"
			oCalendar:Selection := "value in (#6/11/2001#,#6/12/2001#,#6/13/2001#)"
		oEvents := oSchedule:Events()
			oEvents:Add("06/11/2001 10:00:00","06/11/2001 13:00:00")
			oEvents:Add("06/12/2001 10:00:00","06/12/2001 13:00:00")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
144
Nothing is shown in the schedule view, if I use the Selection property. What am I doing wrong

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "06/01/2001"
			oCalendar:Selection := "value in (#6/11/2001#,#6/12/2001#,#6/13/2001#)"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
143
Is it possible to lock a date/day, so no events can be created, moved, and so on

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "06/01/2001"
			oCalendar:Selection := "value in (#6/11/2001#,#6/12/2001#,#6/13/2001#)"
			oCalendar:DisableZoneFormat := "value = #6/12/2001#"
		oEvents := oSchedule:Events()
			oEvents:Add("06/11/2001 10:00:00","06/11/2001 13:00:00")
			oEvents:Add("06/12/2001 10:00:00","06/12/2001 13:00:00")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
142
How can I show the grid lines for minor and major rules in the schedule view

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:SetProperty("Background",54/*exScheduleMajorTimeScaleStyle*/,AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oSchedule:SetProperty("Background",53/*exScheduleMajorTimeRulerColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 192,192,192 } )  , .F. ))
		oSchedule:SetProperty("Background",50/*exScheduleTimeScaleMajorRulerStyle*/,AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oSchedule:SetProperty("Background",49/*exScheduleTimeScaleMajorRulerColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 192,192,192 } )  , .F. ))
		oSchedule:SetProperty("Background",56/*exScheduleMinorTimeScaleStyle*/,AutomationTranslateColor( GraMakeRGBColor  ( { 3,0,0 } )  , .F. ))
		oSchedule:SetProperty("Background",52/*exScheduleTimeScaleMinorRulerStyle*/,AutomationTranslateColor( GraMakeRGBColor  ( { 3,0,0 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
141
Is it possible to show the grid lines for minor rulers too in the schedule view

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:SetProperty("Background",56/*exScheduleMinorTimeScaleStyle*/,AutomationTranslateColor( GraMakeRGBColor  ( { 3,0,0 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
140
How can I change the style and colors to show the grid lines

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:SetProperty("Background",54/*exScheduleMajorTimeScaleStyle*/,AutomationTranslateColor( GraMakeRGBColor  ( { 48,0,0 } )  , .F. ))
		oSchedule:SetProperty("Background",53/*exScheduleMajorTimeRulerColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		oSchedule:SetProperty("Background",50/*exScheduleTimeScaleMajorRulerStyle*/,AutomationTranslateColor( GraMakeRGBColor  ( { 3,0,0 } )  , .F. ))
		oSchedule:SetProperty("Background",49/*exScheduleTimeScaleMajorRulerColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
139
How can I show a solid line rather than dot lines in the schedule view

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:SetProperty("Background",54/*exScheduleMajorTimeScaleStyle*/,AutomationTranslateColor( GraMakeRGBColor  ( { 48,0,0 } )  , .F. ))
		oSchedule:SetProperty("Background",53/*exScheduleMajorTimeRulerColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
138
Is it possible to hide or change the lines in the schedule view

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:SetProperty("Background",54/*exScheduleMajorTimeScaleStyle*/,-1)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
137
Is there a possiblity to lock an event, so it can't be moved or edited

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvent
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:Calendar():Selection := "06/27/2012"
		oEvents := oSchedule:Events()
			oEvent := oEvents:Add("06/27/2012 10:00:00","06/27/2012 11:30:00")
				oEvent:BodyPattern():Type := 6/*exPatternBDiagonal*/
				oEvent:Movable := .F.
				oEvent:Resizable := 0/*exNoResizable*/
				oEvent:Selectable := .F.
				oEvent:Editable := 0/*exNoEditable*/
				oEvent:ExtraLabel := "locked"
			oEvents:Add("06/27/2012 13:30:00","06/27/2012 15:30:00")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
136
Is it possible to load a PNG file on the control's background ( /com only )

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:Template := "Picture = LoadPicture(`c:\exontrol\images\card.png`)"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
135
What is the Event.UserData property used for

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:Calendar():Selection := "06/27/2012"
		oSchedule:DefaultEventTooltip := "Start: <%=%1%><br>End: <%=%2%><br>Duration: <%=((1:=int(0:= (date(%2)-date(%1)))) != 0 ? (=:1 + ' day(s)') : '') + (=:1 ? ' ' : '' ) + ((1:=int(0:=((=:0 - =:1 + 1/24/60/60/2)*24))) != 0 ? =:1 + ' hour(s)' : '' ) + (=:1 ? ' ' : '' ) + ((1:=round((=:0 - =:1)*60)) != 0 ? =:1 + ' min(s)' : '')%><b><%=(len(%6) ? `<br>UserData: `+ %6 : ``)%></b>"
		oEvents := oSchedule:Events()
			oEvents:Add("06/27/2012 11:00:00","06/27/2012 12:30:00"):UserData := "Any extra data associated with the event"
			oEvents:Add("06/27/2012 11:30:00","06/27/2012 13:30:00")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
134
Is there also an event for when a user selects another month in the date-picker control
PROCEDURE OnLayoutEndChanging(oSchedule,Operation)
	DevOut( "End exCalendarDateChange(3)" )
	DevOut( Transform(Operation,"") )
	DevOut( "Currently browsing date:" )
	DevOut( Transform(oSchedule:Calendar:Date(),"") )
RETURN

PROCEDURE OnLayoutStartChanging(oSchedule,Operation)
	DevOut( "Start exCalendarDateChange(3)" )
	DevOut( Transform(Operation,"") )
	DevOut( "Previously browsing date:" )
	DevOut( Transform(oSchedule:Calendar:Date(),"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:LayoutEndChanging := {|Operation| OnLayoutEndChanging(oSchedule,Operation)} /*Notifies your application once the control's layout has been changed.*/
		oSchedule:LayoutStartChanging := {|Operation| OnLayoutStartChanging(oSchedule,Operation)} /*Occurs when the control's layout is about to be changed.*/


	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
133
How can I display the time-zone behind or back (method 2)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oMarkZone
	LOCAL oPattern
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:Calendar():Selection := "06/27/2012"
		oMarkZone := oSchedule:MarkZones():Add("zone","06/27/2012 10:30:00","06/27/2012 13:00:00")
			oMarkZone:LongLabel := "zone"
			oPattern := oMarkZone:Pattern()
				oPattern:Type := 6/*exPatternBDiagonal*/
				oPattern:SetProperty("Color",AutomationTranslateColor( GraMakeRGBColor  ( { 40,40,40 } )  , .F. ))
		oSchedule:ShowMarkZone := 3/*exShowMarkZonesSemi*/
		oSchedule:Events():Add("06/27/2012 11:00:00","06/27/2012 12:30:00")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
132
How can I display the time-zone behind or back (method 1)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:Calendar():Selection := "06/27/2012"
		oSchedule:MarkZones():Add("zone","06/27/2012 10:30:00","06/27/2012 13:00:00"):LongLabel := "zone"
		oSchedule:ShowMarkZone := 1/*exShowMarkZonesBack*/
		oSchedule:Events():Add("06/27/2012 11:00:00","06/27/2012 12:30:00")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
131
How can I add a time-zone

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:Calendar():Selection := "06/27/2012"
		oSchedule:MarkZones():Add("zone","06/27/2012 10:30:00","06/27/2012 13:00:00"):LongLabel := "zone"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
130
How can I specify a larger height for the timer, or it is possible to make it bigger

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oAppearance
	LOCAL oMarkTime,oMarkTime1
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/24/2012"
		oAppearance := oSchedule:VisualAppearance()
			oAppearance:Add(1,"gBFLBCJwBAEHhEJAEGg4BC0MQAAYAQGKIYBkAKBQAGaAoDDUOQzQwAAxDGKUEwsACEIrjKCYVgOHYYQjGMZwHIUIhkGoSZKlCIRVDCKYJSzLcZAFIMRwSBiEQTmaa4WiKIgIQiUBomGahajkMoYZCYKKSCI2S4aDZCIoTPLMagxC5GJCnSJnITJCpdV7XVgWHYVSzDM6yEScZTkFqubZsW5cNwXHZ9azkQpyFRPe6bbrqfJ/X5gN64HgBfrEUo8cLxHCMKw3DKPYrkOLHS4CQjnSrLcqzDK8ax3GafZwcbqKWbmR5LUjTNR1DS9Hy3Kh8O4sSDbDqeZZpW7bNx2Xa9YQZcS5JBvfA8BwXC6JY7heR4ZIHTT9GbNc7zXQdHxLiuUZrnUEwvFYIoDjeXZuHePA+A8Hx/kuYhQD2WQqg8T4vlWbJ3nuPg+l+H5BFEASAg==")
			oAppearance:Add(2,"CP:1 0 -3 0 3")
		oMarkTime := oSchedule:MarkTimes():Add("timer1","05/24/2012 11:15:00")
			oMarkTime:SetProperty("BackColor",0x1000000)
			oMarkTime:Line := -1/*exNoLines*/
			oMarkTime:Label := "default height"
			oMarkTime:LabelAlign := 34/*exBottomRight*/
		oMarkTime1 := oSchedule:MarkTimes():Add("timer2","05/24/2012 13:15:00")
			oMarkTime1:SetProperty("BackColor",0x2000000)
			oMarkTime1:Line := -1/*exNoLines*/
			oMarkTime1:Label := "larger height"
			oMarkTime1:LabelAlign := 34/*exBottomRight*/
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
129
How I know what event was edited when it was edited by a user
PROCEDURE OnLayoutEndChanging(oSchedule,Operation)
	DevOut( "End Operation exScheduleEditEvent(15)" )
	DevOut( Transform(Operation,"") )
	DevOut( "Use the global member from LayoutStartChanging, and you got the Event being edited" )
RETURN

PROCEDURE OnLayoutStartChanging(oSchedule,Operation)
	DevOut( "Start Operation exScheduleEditEvent(15)" )
	DevOut( Transform(Operation,"") )
	DevOut( "Holds the EventFromPoint to a global member" )
	DevOut( Transform(oSchedule:EventFromPoint(-1,-1),"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:LayoutEndChanging := {|Operation| OnLayoutEndChanging(oSchedule,Operation)} /*Notifies your application once the control's layout has been changed.*/
		oSchedule:LayoutStartChanging := {|Operation| OnLayoutStartChanging(oSchedule,Operation)} /*Occurs when the control's layout is about to be changed.*/

		oSchedule:BeginUpdate()
		oSchedule:SelectEventStyle := 816/*exLinesThicker+exLinesSolid*/
		oSchedule:Calendar():Selection := "05/24/2012"
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 09:00:00","05/24/2012 12:00:00")
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:45:00")
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
128
What are timers in your exSchedule component

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oMarkTime,oMarkTime1
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/24/2012"
		oMarkTime := oSchedule:MarkTimes():Add("timer1","05/24/2012 08:35:00")
			oMarkTime:Label := "<fgcolor=808080>fixed timer"
			oMarkTime:LabelAlign := 1/*exTopCenter*/
			oMarkTime:Pattern():Type := 6/*exPatternBDiagonal*/
			oMarkTime:Pattern():SetProperty("Color",AutomationTranslateColor( GraMakeRGBColor  ( { 224,224,224 } )  , .F. ))
		oMarkTime1 := oSchedule:MarkTimes():Add("timer2","05/24/2012 10:51:00")
			oMarkTime1:Label := "<fgcolor=00FF00>movable timer"
			oMarkTime1:Movable := .T.
			oMarkTime1:SetProperty("BodyEventBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 128,255,128 } )  , .F. ))
			oMarkTime1:SetProperty("LineColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,240,15 } )  , .F. ))
			oMarkTime1:SetProperty("TimeScaleLineColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,255,0 } )  , .F. ))
			oMarkTime1:TimeScaleLabel := ""
			oMarkTime1:Line := 780/*exLinesThicker+exLinesDash*/
			oMarkTime1:Label := "<bgcolor=FFFFFF><fgcolor=00FF00><b><%hh%>:<%nn%> <%AM/PM%><br><%loc_sdate%>"
			oMarkTime1:TimeScaleLine := 259/*exLinesThick+exLinesDot4*/
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 09:00:00","05/24/2012 12:00:00")
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:45:00")
			oEvents:Add("05/24/2012 11:30:00","05/24/2012 14:30:00")
			oEvents:Add("05/24/2012 12:45:00","05/24/2012 15:45:00")
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
127
How do I get the selected dates in the calendar panel
PROCEDURE OnLayoutEndChanging(oSchedule,Operation)
	DevOut( "Operation: exScheduleSelectionChange(10)" )
	DevOut( Transform(Operation,"") )
	DevOut( "Selected Event Count:" )
	DevOut( Transform(oSchedule:SelCount(),"") )
	DevOut( "First Selected Event:" )
	DevOut( Transform(oSchedule:SelEvent(0),"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:LayoutEndChanging := {|Operation| OnLayoutEndChanging(oSchedule,Operation)} /*Notifies your application once the control's layout has been changed.*/

		oSchedule:Calendar():Selection := "01/01/2011"
		oEvents := oSchedule:Events()
			oEvents:Add("01/01/2011 10:00:00","01/01/2011 11:30:00")
			oEvents:Add("01/01/2011 11:30:00","01/01/2011 13:30:00")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
126
How do I get the selected dates in the calendar panel
PROCEDURE OnLayoutEndChanging(oSchedule,Operation)
	LOCAL oCalendar
	DevOut( "Operation: exCalendarSelectionChange(1)" )
	DevOut( Transform(Operation,"") )
	oCalendar := oSchedule:Calendar()
		DevOut( "Selected Date Count:" )
		DevOut( Transform(oCalendar:SelCount(),"") )
		DevOut( "First Selected Date:" )
		DevOut( Transform(oCalendar:SelDate(0),"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:LayoutEndChanging := {|Operation| OnLayoutEndChanging(oSchedule,Operation)} /*Notifies your application once the control's layout has been changed.*/


	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
125
What is the easiest way to display a picture on my event

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:Calendar():Selection := "05/24/2012"
		oSchedule:Pictures():Add("pic1","c:\exontrol\images\zipdisk.gif")
		oSchedule:Events():Add("05/24/2012 09:00:00","05/24/2012 14:00:00"):Pictures := "pic1"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
124
How can I programmatically move a specified event
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/24/2012"
		oSchedule:Events():Add("05/24/2012 10:00:00","05/24/2012 12:00:00"):MoveBy("-00:15")
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
123
How can I edit the event but still display its margins
PROCEDURE OnAddEvent(oSchedule,Ev)
	/*Ev.Editable = 1*/

RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvent,oEvent1
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:AddEvent := {|Ev| OnAddEvent(oSchedule,Ev)} /*Notifies your application once the a new event is added.*/

		oSchedule:SelectEventStyle := 48/*exLinesSolid*/
		oSchedule:DefaultEventLongLabel := "<%=%256%><br><%=%5%>"
		oSchedule:DefaultEventShortLabel := oSchedule:DefaultEventLongLabel()
		oSchedule:Calendar():Selection := "01/10/2001"
		oSchedule:OnResizeControl := 3073/*exCalendarAutoHide+exCalendarFit+exResizePanelRight*/
		oEvents := oSchedule:Events()
			oEvent := oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
				oEvent:Editable := 1/*exEditCaption*/
				oEvent:Caption := "your caption"
			oEvent1 := oEvents:Add("01/10/2001 10:00:00","01/10/2001 13:00:00")
				oEvent1:Editable := 1/*exEditCaption*/
				oEvent1:Caption := "other caption"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
122
How can I edit the events

PROCEDURE OnAddEvent(oSchedule,Ev)
	/*Ev.Editable = 3*/

RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvent,oEvent1
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:AddEvent := {|Ev| OnAddEvent(oSchedule,Ev)} /*Notifies your application once the a new event is added.*/

		oSchedule:SelectEventStyle := 48/*exLinesSolid*/
		oSchedule:DefaultEventLongLabel := ""
		oSchedule:DefaultEventShortLabel := ""
		oSchedule:CreateEventLabel := ""
		oSchedule:Calendar():Selection := "01/10/2001"
		oSchedule:OnResizeControl := 3073/*exCalendarAutoHide+exCalendarFit+exResizePanelRight*/
		oEvents := oSchedule:Events()
			oEvent := oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
				oEvent:Editable := 3/*exEditLongLabel*/
				oEvent:LongLabel := "just your label"
			oEvent1 := oEvents:Add("01/10/2001 10:00:00","01/10/2001 13:00:00")
				oEvent1:Editable := 3/*exEditLongLabel*/
				oEvent1:LongLabel := "just another label"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
121
At the moment the scheduler only displays events from 8:00 am to 3:00 pm. How do I extend this time frame

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:DayStartTime := "07:30"
		oSchedule:DayEndTime := "14:30"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
120
How does localization work

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:FirstWeekDay := oCalendar:LocFirstWeekDay()
			oCalendar:MonthNames := oCalendar:LocMonthNames()
			oCalendar:WeekDays := oCalendar:LocWeekDays()
			oCalendar:AMPM := oCalendar:LocAMPM()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
119
Is it possible to limit the calendar to one month only

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:ScrollBars := 0/*exNoScroll*/
		oSchedule:AllowMoveSchedule := 0/*exDisallow*/
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "01/10/2001"
			oCalendar:MinDate := "01/01/2001"
			oCalendar:MaxDate := "01/31/2001"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
118
How can I display a distingue text for repetitive events

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:SelectEventStyle := 48/*exLinesSolid*/
		oSchedule:DefaultEventLongLabel := "<%=%256%><br><%=%264? `repetitive event`:``%>"
		oSchedule:DefaultEventShortLabel := oSchedule:DefaultEventLongLabel()
		oSchedule:Calendar():Selection := "01/10/2001"
		oSchedule:OnResizeControl := 3073/*exCalendarAutoHide+exCalendarFit+exResizePanelRight*/
		oEvents := oSchedule:Events()
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00"):Repetitive := "weekday(value) = 3"
			oEvents:Add("01/10/2001 10:00:00","01/10/2001 13:00:00")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
117
How can I display the event's duration on the body of the event

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:SelectEventStyle := 48/*exLinesSolid*/
		oSchedule:DefaultEventLongLabel := "<%=%256%><br><%=((1:=int(0:= (date(%2)-date(%1)))) != 0 ? (=:1 + ' day(s)') : '') + (=:1 ? ' ' : '' ) + ((1:=int(0:=((=:0 - =:1 + 1/24/60/60/2)*24))) != 0 ? =:1 + ' hour(s)' : '' ) + (=:1 ? ' ' : '' ) + ((1:=round((=:0 - =:1)*60)) != 0 ? =:1 + ' min(s)' : '')%>"
		oSchedule:DefaultEventShortLabel := oSchedule:DefaultEventLongLabel()
		oSchedule:Calendar():Selection := "01/10/2001"
		oSchedule:OnResizeControl := 3073/*exCalendarAutoHide+exCalendarFit+exResizePanelRight*/
		oEvents := oSchedule:Events()
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
			oEvents:Add("01/10/2001 10:00:00","01/10/2001 13:00:00")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
116
The sample shows how the event's body can display automatically the UserData property of the event

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:SelectEventStyle := 48/*exLinesSolid*/
		oSchedule:DefaultEventLongLabel := "<%=%256%><br><%=%6%>"
		oSchedule:DefaultEventShortLabel := oSchedule:DefaultEventLongLabel()
		oSchedule:Calendar():Selection := "01/10/2001"
		oSchedule:OnResizeControl := 3073/*exCalendarAutoHide+exCalendarFit+exResizePanelRight*/
		oEvents := oSchedule:Events()
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00"):UserData := "UserData 1"
			oEvents:Add("01/10/2001 10:00:00","01/10/2001 13:00:00"):UserData := "UserData 2"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
115
The sample shows how the event's body can display automatically the Caption property of the event

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:SelectEventStyle := 48/*exLinesSolid*/
		oSchedule:DefaultEventLongLabel := "<%=%256%><br><%=%5%>"
		oSchedule:DefaultEventShortLabel := oSchedule:DefaultEventLongLabel()
		oSchedule:Calendar():Selection := "01/10/2001"
		oSchedule:OnResizeControl := 3073/*exCalendarAutoHide+exCalendarFit+exResizePanelRight*/
		oEvents := oSchedule:Events()
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00"):Caption := "Event 1"
			oEvents:Add("01/10/2001 10:00:00","01/10/2001 13:00:00"):Caption := "Event 2"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
114
The sample shows how the event's body can display automatically the group's ID, Caption and Title

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oGroup,oGroup1
	LOCAL oGroups
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:SelectEventStyle := 48/*exLinesSolid*/
		oSchedule:DefaultEventLongLabel := "Group's ID:<%=%4%><br>Group's Caption: <%=%262%><br>Group's Title: <%=%263%><br><%=%256%>"
		oSchedule:DefaultEventShortLabel := oSchedule:DefaultEventLongLabel()
		oSchedule:Calendar():Selection := "01/10/2001"
		oSchedule:DisplayGroupingButton := .T.
		oSchedule:ShowGroupingEvents := .T.
		oSchedule:OnResizeControl := 3073/*exCalendarAutoHide+exCalendarFit+exResizePanelRight*/
		oGroups := oSchedule:Groups()
			oGroup := oGroups:Add(1,"Group 1")
				oGroup:Title := "First"
				oGroup:Visible := .T.
			oGroup1 := oGroups:Add(2,"Group 2")
				oGroup1:Title := "Second"
				oGroup1:Visible := .T.
		oEvents := oSchedule:Events()
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00"):GroupID := 1
			oEvents:Add("01/10/2001 10:00:00","01/10/2001 13:00:00"):GroupID := 2

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
113
The following sample displays automatically an "All-Day-Event: " prefix for AllDayEvent events

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:SelectEventStyle := 48/*exLinesSolid*/
		oSchedule:DefaultEventLongLabel := "<%=%3 ? `All-Day-Event: `: ``%><%=%256%>"
		oSchedule:DefaultEventShortLabel := oSchedule:DefaultEventLongLabel()
		oSchedule:Calendar():Selection := "01/10/2001"
		oSchedule:OnResizeControl := 3073/*exCalendarAutoHide+exCalendarFit+exResizePanelRight*/
		oEvents := oSchedule:Events()
			oEvents:Add("01/10/2001","01/10/2001"):AllDayEvent := .T.
			oEvents:Add("01/10/2001 10:00:00","01/10/2001 13:00:00")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
112
How can I use the calendar's LongTimeFormat

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:SelectEventStyle := 48/*exLinesSolid*/
		oSchedule:DefaultEventLongLabel := "<%=%257%>"
		oSchedule:DefaultEventShortLabel := "<%=%257%>"
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "01/10/2001"
			oCalendar:LongTimeFormat := "<%hh%>:<%nn%>:<%ss%>"
		oSchedule:OnResizeControl := 3073/*exCalendarAutoHide+exCalendarFit+exResizePanelRight*/
		oSchedule:Events():Add("01/10/2001 10:00:00","01/11/2001 13:00:00")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
111
How can I use the calendar's ShortTimeFormat. The sample displays the times in 24-hours format

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:SelectEventStyle := 48/*exLinesSolid*/
		oSchedule:DefaultEventLongLabel := "<%=%256%>"
		oSchedule:DefaultEventShortLabel := "<%=%256%>"
		oSchedule:TimeScales:Item(0):MajorTimeLabel := "<%hh%>:<%nn%>"
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "01/10/2001"
			oCalendar:ShortTimeFormat := "<%h%>:<%nn%>"
		oSchedule:OnResizeControl := 3073/*exCalendarAutoHide+exCalendarFit+exResizePanelRight*/
		oSchedule:Events():Add("01/10/2001 10:00:00","01/10/2001 13:00:00")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
110
How can I use the calendar's ShortDateFormat

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:SelectEventStyle := 48/*exLinesSolid*/
		oSchedule:DefaultEventLongLabel := "<%=%256%>"
		oSchedule:DefaultEventShortLabel := "<%=%256%>"
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "01/10/2001"
			oCalendar:ShortDateFormat := "<%loc_d2%>, <%loc_m2%> <%d%>, <%yy%>"
		oSchedule:OnResizeControl := 3073/*exCalendarAutoHide+exCalendarFit+exResizePanelRight*/
		oSchedule:Events():Add("01/10/2001 10:00:00","01/10/2001 13:00:00"):AllDayEvent := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
109
How can I use the calendar's LongDateFormat

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:SelectEventStyle := 48/*exLinesSolid*/
		oSchedule:DefaultEventLongLabel := "<%=%257%>"
		oSchedule:DefaultEventShortLabel := "<%=%257%>"
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "01/10/2001"
			oCalendar:LongDateFormat := "<%loc_dddd%>, <%loc_mmm%> <%d%>, <%yyyy%>"
		oSchedule:OnResizeControl := 3073/*exCalendarAutoHide+exCalendarFit+exResizePanelRight*/
		oSchedule:Events():Add("01/10/2001 10:00:00","01/10/2001 13:00:00"):AllDayEvent := .T.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
108
Is it possible to prevent updating events

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:SelectEventStyle := 48/*exLinesSolid*/
		oSchedule:AllowUpdateDisableZone := .F.
		oCalendar := oSchedule:Calendar()
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:Selection := "01/09/2001"
			oCalendar:DisableZoneFormat := "value >= #1/11/2001#"
			oCalendar:MinDate := "01/01/2001"
		oEvents := oSchedule:Events()
			oEvents:Add("01/10/2001 10:00:00","01/10/2001 13:00:00")
			oEvents:Add("01/11/2001 10:00:00","01/11/2001 13:00:00")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
107
How can I specify that after editing the caption should be on top ( method 2 )

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvent
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:DefaultEventLongLabel := ""
		oSchedule:DefaultEventShortLabel := oSchedule:DefaultEventLongLabel()
		oSchedule:SelectEventStyle := 48/*exLinesSolid*/
		oCalendar := oSchedule:Calendar()
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:Selection := "01/01/2001"
		oEvents := oSchedule:Events()
			oEvent := oEvents:Add("01/01/2001 10:00:00","01/01/2001 13:00:00")
				oEvent:ExtraLabel := "title"
				oEvent:ExtraLabelAlign := 0/*exTopLeft*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
106
How can I specify that after editing the caption should be on top ( method 1 )

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvent
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:DefaultEventLongLabel := ""
		oSchedule:DefaultEventShortLabel := oSchedule:DefaultEventLongLabel()
		oSchedule:SelectEventStyle := 48/*exLinesSolid*/
		oCalendar := oSchedule:Calendar()
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:Selection := "01/01/2001"
		oEvents := oSchedule:Events()
			oEvent := oEvents:Add("01/01/2001 10:00:00","01/01/2001 13:00:00")
				oEvent:LongLabel := "title"
				oEvent:Editable := 3/*exEditLongLabel*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
105
How can I get ride or hide the of the calendar's grid lines

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:Selection := "01/01/2001"
			oCalendar:ShowGridLines := -1/*exNoLines*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
104
How can I programmatically select a single date ( method 2 )

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:Calendar():Selection := "01/01/2012"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
103
How can I programmatically select a single date ( method 1 )

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "0"
			oCalendar:SetProperty("SelectDate","01/01/2012",.T.)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
102
How can I prevent showing the Today button, in the calendar panel

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:OnResizeControl := 256/*exHideSplitter*/
		oSchedule:Calendar():ShowTodayButton := .F.

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
101
How can I display just the calendar panel, not including the schedule panel

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:OnResizeControl := 256/*exHideSplitter*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN